;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;一些常用的格式符:
%s 字符串 
%d 十进制整数 
%o 八进制整数 
%x 十六进制整数 
%X 同 %x, 大写形式输出 
%c 字符 
%S 表 
%f 小数点形式的浮点数 
%e 指数形式的浮点数 
%g %f或%e, 自动选择一个最少输出字符的格式 
(fset 'p 'message)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;流程控制
(progn (setq a 12)
"progn 按顺序执行其参数语句，返回的是最后一个参数的执行结果"

  (message "a")
  (message "b"))
=>"b"

(defun test (n)
""
  ((< n 10) "小于1十")
  ((< n 20) "小于2十")
  ((< n 30) "小于3十")
  ((< n 40) "小于4十")
  (t "其他")))
(test 100)
=>"其他"
  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;函数
;函数的递归调用
(defun fib-nth (n)
"求斐波那契数列的第n项值"
  (cond
    ((= n 0) 0)
    ((= n 1) 1)
    (t (+ (fib-nth (- n 1)) (fib-nth (- n 2)))))   
(fib-nth 10)
==>55

;函数的别名？
(defun add (a b)
  "a+b"
  (+ a b))

(fset 'abc 'add)
(abc 12 13)
=>25

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;谓词
;Elisp 中的谓词指的是那些返回的结果是 t 或 nil 的那些函数
(stom '());;原子？
(listp '());;表？
(null 12);;假值？
(floatp 12);;浮点数值？
(integerp 12);;整形数值？